home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / crt / sun3.md / RCS / start.s,v < prev   
Text File  |  1991-09-26  |  3KB  |  129 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  sprited:1.3.1;
  5. locks    ; strict;
  6. comment  @# @;
  7.  
  8.  
  9. 1.3
  10. date     88.11.13.16.17.59;  author ouster;  state Exp;
  11. branches 1.3.1.1;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     88.11.13.15.14.09;  author ouster;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     88.06.19.14.35.39;  author ouster;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24. 1.3.1.1
  25. date     91.09.25.23.06.46;  author kupfer;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29.  
  30. desc
  31. @@
  32.  
  33.  
  34. 1.3
  35. log
  36. @Undo last change:  the old way is the correct ANSI C way.
  37. @
  38. text
  39. @|*
  40. |* start.s --
  41. |*
  42. |*    Header to set up argc, argv for main(), as well as set up environment
  43. |*      pointers for Unix routines.
  44. |*
  45. |* Copyright 1966, 1988 Regents of the University of California
  46. |* Permission to use, copy, modify, and distribute this
  47. |* software and its documentation for any purpose and without
  48. |* fee is hereby granted, provided that the above copyright
  49. |* notice appear in all copies.  The University of California
  50. |* makes no representations about the suitability of this
  51. |* software for any purpose.  It is provided "as is" without
  52. |* express or implied warranty.
  53. |*
  54.  
  55.     .data
  56.     .asciz "$Header: /sprite/src/lib/c/crt/sun3.md/RCS/start.s,v 1.1 88/06/19 14:35:39 ouster Exp $ SPRITE (Berkeley)"
  57.     .even
  58.     .globl    _environ
  59. _environ:
  60.     .long 0
  61.  
  62.     .text
  63.     .long    0
  64.     trap    #15        | Processes starting off in debug mode will
  65.                 |     start here.
  66.     .globl    start
  67. start:
  68.     movl    sp@@,d2        | argc
  69.     lea        sp@@(4),a3    | argv
  70.     movl    d2, d0        | pass argc + 1 as one param 
  71.     addql    #1, d0          |      to lmult
  72.     movl    #4, d1        | want 4 * (argc + 1)
  73.     jsr      lmult        | 
  74.     movl        a3, d1        | take argv and ... 
  75.     addl        d0, d1        | ... go past it by (argc + 1) 4-byte fields
  76.     movl    d1,_environ    | set the global _environ variable
  77.     movl    d1,sp@@-        | push envp
  78.     movl    a3,sp@@-        | push argv
  79.     movl    d2,sp@@-        | push argc
  80.     lea        0,a6        | stack frame link 0 in main -- for dbx
  81.     jsr        _main        | main(argc, argv, envp)
  82.     addw    #12,sp
  83.     movl    d0,sp@@-
  84.     jsr        _exit        | exit( ... )
  85.     addql    #4,sp
  86.     rts
  87. @
  88.  
  89.  
  90. 1.3.1.1
  91. log
  92. @Initial branch for Sprite server.
  93. @
  94. text
  95. @d18 1
  96. a18 1
  97.     .asciz "$Header: /sprite/src/lib/c/crt/sun3.md/RCS/start.s,v 1.3 88/11/13 16:17:59 ouster Exp $ SPRITE (Berkeley)"
  98. @
  99.  
  100.  
  101. 1.2
  102. log
  103. @When main returns, ignore return value and exit with status 0.
  104. @
  105. text
  106. @d18 1
  107. a18 1
  108.     .asciz "$Header: start.s,v 1.1 88/06/19 14:35:39 ouster Exp $ SPRITE (Berkeley)"
  109. d45 2
  110. a46 2
  111.     clrl    sp@@-
  112.     jsr        _exit        | exit(0)
  113. @
  114.  
  115.  
  116. 1.1
  117. log
  118. @Initial revision
  119. @
  120. text
  121. @d18 1
  122. a18 1
  123.     .asciz "$Header: unixCrt0.s,v 1.2 87/12/24 16:12:09 douglis Exp $ SPRITE (Berkeley)"
  124. d45 2
  125. a46 2
  126.     movl    d0,sp@@-
  127.     jsr        _exit        | exit( ... )
  128. @
  129.